<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>T3D: T3D::Matrix4x4 Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">T3D
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><b>T3D</b></li><li class="navelem"><a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="class_t3_d_1_1_matrix4x4-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">T3D::Matrix4x4 Class Reference</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a1678d7e46361e15ba41c38cad7065c11"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t3_d_1_1_matrix4x4.html#a1678d7e46361e15ba41c38cad7065c11">Matrix4x4</a> ()</td></tr>
<tr class="separator:a1678d7e46361e15ba41c38cad7065c11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ff2aeeb802e55aa2fb5b8ede2ba38e0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7ff2aeeb802e55aa2fb5b8ede2ba38e0"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>Matrix4x4</b> (float m00, float m01, float m02, float m03, float m10, float m11, float m12, float m13, float m20, float m21, float m22, float m23, float m30, float m31, float m32, float m33)</td></tr>
<tr class="separator:a7ff2aeeb802e55aa2fb5b8ede2ba38e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9dc8d266232f0ed005cfcb369066407"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae9dc8d266232f0ed005cfcb369066407"></a>
float *&#160;</td><td class="memItemRight" valign="bottom"><b>getData</b> ()</td></tr>
<tr class="separator:ae9dc8d266232f0ed005cfcb369066407"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed6a154def1111e3e8a2a9bd9a35d024"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t3_d_1_1_matrix4x4.html#aed6a154def1111e3e8a2a9bd9a35d024">swap</a> (<a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a> &amp;other)</td></tr>
<tr class="separator:aed6a154def1111e3e8a2a9bd9a35d024"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b7dbd4a5e6d39d0503355ae3d2e2331"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1b7dbd4a5e6d39d0503355ae3d2e2331"></a>
float *&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (int iRow)</td></tr>
<tr class="separator:a1b7dbd4a5e6d39d0503355ae3d2e2331"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aebbe69837f15419b079520572ff0b8b5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aebbe69837f15419b079520572ff0b8b5"></a>
const float *&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (int iRow) const </td></tr>
<tr class="separator:aebbe69837f15419b079520572ff0b8b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d437422ec8b5d0a6d2d1c7c8564a835"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7d437422ec8b5d0a6d2d1c7c8564a835"></a>
<a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a>&#160;</td><td class="memItemRight" valign="bottom"><b>concatenate</b> (const <a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a> &amp;m2) const </td></tr>
<tr class="separator:a7d437422ec8b5d0a6d2d1c7c8564a835"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7e5447a2d98f6fd7697e6c80b2eb5b1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t3_d_1_1_matrix4x4.html#aa7e5447a2d98f6fd7697e6c80b2eb5b1">operator*</a> (const <a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a> &amp;m2) const </td></tr>
<tr class="separator:aa7e5447a2d98f6fd7697e6c80b2eb5b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ba4bd89268ab0678b62f2b2e276c3ed"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_t3_d_1_1_vector3.html">Vector3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t3_d_1_1_matrix4x4.html#a7ba4bd89268ab0678b62f2b2e276c3ed">operator*</a> (const <a class="el" href="class_t3_d_1_1_vector3.html">Vector3</a> &amp;v) const </td></tr>
<tr class="separator:a7ba4bd89268ab0678b62f2b2e276c3ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a448e994e828f572bb1e8a7202ba3db04"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a448e994e828f572bb1e8a7202ba3db04"></a>
<a class="el" href="class_t3_d_1_1_vector4.html">Vector4</a>&#160;</td><td class="memItemRight" valign="bottom"><b>operator*</b> (const <a class="el" href="class_t3_d_1_1_vector4.html">Vector4</a> &amp;v) const </td></tr>
<tr class="separator:a448e994e828f572bb1e8a7202ba3db04"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b6e0dc8a0010e3f89bdf9b1cec820b3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7b6e0dc8a0010e3f89bdf9b1cec820b3"></a>
<a class="el" href="class_t3_d_1_1_plane.html">Plane</a>&#160;</td><td class="memItemRight" valign="bottom"><b>operator*</b> (const <a class="el" href="class_t3_d_1_1_plane.html">Plane</a> &amp;p) const </td></tr>
<tr class="separator:a7b6e0dc8a0010e3f89bdf9b1cec820b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6181a14d5108206af66b24c075b29091"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t3_d_1_1_matrix4x4.html#a6181a14d5108206af66b24c075b29091">operator+</a> (const <a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a> &amp;m2) const </td></tr>
<tr class="separator:a6181a14d5108206af66b24c075b29091"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab316a653524a8b9b6995643f6484f18f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t3_d_1_1_matrix4x4.html#ab316a653524a8b9b6995643f6484f18f">operator-</a> (const <a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a> &amp;m2) const </td></tr>
<tr class="separator:ab316a653524a8b9b6995643f6484f18f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15606944065638b5d2fc801b700fa4e7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t3_d_1_1_matrix4x4.html#a15606944065638b5d2fc801b700fa4e7">operator==</a> (const <a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a> &amp;m2) const </td></tr>
<tr class="separator:a15606944065638b5d2fc801b700fa4e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36f3ebf7487386f72398a59d81ca40d4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t3_d_1_1_matrix4x4.html#a36f3ebf7487386f72398a59d81ca40d4">operator!=</a> (const <a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a> &amp;m2) const </td></tr>
<tr class="separator:a36f3ebf7487386f72398a59d81ca40d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0e167d247e7537cfb9afc66c23a103f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t3_d_1_1_matrix4x4.html#ae0e167d247e7537cfb9afc66c23a103f">operator=</a> (const <a class="el" href="class_t3_d_1_1_matrix3x3.html">Matrix3x3</a> &amp;mat3)</td></tr>
<tr class="separator:ae0e167d247e7537cfb9afc66c23a103f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46d42ddb5a2926a6b7e68d68ecd1d42b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a46d42ddb5a2926a6b7e68d68ecd1d42b"></a>
<a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a>&#160;</td><td class="memItemRight" valign="bottom"><b>transpose</b> (void) const </td></tr>
<tr class="separator:a46d42ddb5a2926a6b7e68d68ecd1d42b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd7c913d2721c0dc400b131f0a39e9a6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t3_d_1_1_matrix4x4.html#afd7c913d2721c0dc400b131f0a39e9a6">setTrans</a> (const <a class="el" href="class_t3_d_1_1_vector3.html">Vector3</a> &amp;v)</td></tr>
<tr class="separator:afd7c913d2721c0dc400b131f0a39e9a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2aabedfd0409f3b6113a4299ee6bbe42"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_t3_d_1_1_vector3.html">Vector3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t3_d_1_1_matrix4x4.html#a2aabedfd0409f3b6113a4299ee6bbe42">getTrans</a> () const </td></tr>
<tr class="separator:a2aabedfd0409f3b6113a4299ee6bbe42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace7bf501a6282089b09b59508e8b624f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t3_d_1_1_matrix4x4.html#ace7bf501a6282089b09b59508e8b624f">makeTrans</a> (const <a class="el" href="class_t3_d_1_1_vector3.html">Vector3</a> &amp;v)</td></tr>
<tr class="separator:ace7bf501a6282089b09b59508e8b624f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3fcf5d1ebb0d67694c82f1c16b624cb0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3fcf5d1ebb0d67694c82f1c16b624cb0"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>makeTrans</b> (float tx, float ty, float tz)</td></tr>
<tr class="separator:a3fcf5d1ebb0d67694c82f1c16b624cb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09417efd46dfd51207acc43dc19199e6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t3_d_1_1_matrix4x4.html#a09417efd46dfd51207acc43dc19199e6">setScale</a> (const <a class="el" href="class_t3_d_1_1_vector3.html">Vector3</a> &amp;v)</td></tr>
<tr class="separator:a09417efd46dfd51207acc43dc19199e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88e5622ebc6f7415acd4156d03b5ddac"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t3_d_1_1_matrix4x4.html#a88e5622ebc6f7415acd4156d03b5ddac">extract3x3Matrix</a> (<a class="el" href="class_t3_d_1_1_matrix3x3.html">Matrix3x3</a> &amp;m3x3) const </td></tr>
<tr class="separator:a88e5622ebc6f7415acd4156d03b5ddac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0526363bb81eeeca3bf34c0eac0e20f3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t3_d_1_1_matrix4x4.html#a0526363bb81eeeca3bf34c0eac0e20f3">hasNegativeScale</a> () const </td></tr>
<tr class="separator:a0526363bb81eeeca3bf34c0eac0e20f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab19acfd777f9b0d08ea54e245c5e308c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab19acfd777f9b0d08ea54e245c5e308c"></a>
<a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a>&#160;</td><td class="memItemRight" valign="bottom"><b>operator*</b> (float scalar) const </td></tr>
<tr class="separator:ab19acfd777f9b0d08ea54e245c5e308c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e1c69d60126a18b349e8417eaad3ad2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7e1c69d60126a18b349e8417eaad3ad2"></a>
<a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a>&#160;</td><td class="memItemRight" valign="bottom"><b>adjoint</b> () const </td></tr>
<tr class="separator:a7e1c69d60126a18b349e8417eaad3ad2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a914d28e29967752be4b3b528eebd3907"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a914d28e29967752be4b3b528eebd3907"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><b>determinant</b> () const </td></tr>
<tr class="separator:a914d28e29967752be4b3b528eebd3907"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8647131d3bd46b92231d2ee23e86471e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8647131d3bd46b92231d2ee23e86471e"></a>
<a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a>&#160;</td><td class="memItemRight" valign="bottom"><b>inverse</b> () const </td></tr>
<tr class="separator:a8647131d3bd46b92231d2ee23e86471e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a790e5354f42580d4c71e34c5e738af7a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t3_d_1_1_matrix4x4.html#a790e5354f42580d4c71e34c5e738af7a">isAffine</a> (void) const </td></tr>
<tr class="separator:a790e5354f42580d4c71e34c5e738af7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c6e88de0f64c132283319a0cd7a6a8a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t3_d_1_1_matrix4x4.html#a2c6e88de0f64c132283319a0cd7a6a8a">inverseAffine</a> (void) const </td></tr>
<tr class="separator:a2c6e88de0f64c132283319a0cd7a6a8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36cd23a5f1eb366af2293519fbd292bd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t3_d_1_1_matrix4x4.html#a36cd23a5f1eb366af2293519fbd292bd">concatenateAffine</a> (const <a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a> &amp;m2) const </td></tr>
<tr class="separator:a36cd23a5f1eb366af2293519fbd292bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0eefdf23955fd626da91838c96d32b59"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_t3_d_1_1_vector3.html">Vector3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t3_d_1_1_matrix4x4.html#a0eefdf23955fd626da91838c96d32b59">transformAffine</a> (const <a class="el" href="class_t3_d_1_1_vector3.html">Vector3</a> &amp;v) const </td></tr>
<tr class="separator:a0eefdf23955fd626da91838c96d32b59"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3444acaca95c4c35d035e22cc13e48c6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_t3_d_1_1_vector4.html">Vector4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t3_d_1_1_matrix4x4.html#a3444acaca95c4c35d035e22cc13e48c6">transformAffine</a> (const <a class="el" href="class_t3_d_1_1_vector4.html">Vector4</a> &amp;v) const </td></tr>
<tr class="separator:a3444acaca95c4c35d035e22cc13e48c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a40963b5eb0d6228036c8a3971378e287"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t3_d_1_1_matrix4x4.html#a40963b5eb0d6228036c8a3971378e287">getTrans</a> (const <a class="el" href="class_t3_d_1_1_vector3.html">Vector3</a> &amp;v)</td></tr>
<tr class="separator:a40963b5eb0d6228036c8a3971378e287"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab79ab2cbea297e23922bea347e5c88f5"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t3_d_1_1_matrix4x4.html#ab79ab2cbea297e23922bea347e5c88f5">getTrans</a> (float tx, float ty, float tz)</td></tr>
<tr class="separator:ab79ab2cbea297e23922bea347e5c88f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f4d4874aeeb949257ac5c5d010e9878"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t3_d_1_1_matrix4x4.html#a9f4d4874aeeb949257ac5c5d010e9878">getScale</a> (const <a class="el" href="class_t3_d_1_1_vector3.html">Vector3</a> &amp;v)</td></tr>
<tr class="separator:a9f4d4874aeeb949257ac5c5d010e9878"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a702e2fba4ea6d997a06924bde0300f65"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t3_d_1_1_matrix4x4.html#a702e2fba4ea6d997a06924bde0300f65">getScale</a> (float sx, float sy, float sz)</td></tr>
<tr class="separator:a702e2fba4ea6d997a06924bde0300f65"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:ad4ace6433af4d25c44507d39fd11333f"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t3_d_1_1_matrix4x4.html#ad4ace6433af4d25c44507d39fd11333f">ZERO</a></td></tr>
<tr class="separator:ad4ace6433af4d25c44507d39fd11333f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a557d1ea19926b9b176df5863d9a3ecbd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a557d1ea19926b9b176df5863d9a3ecbd"></a>
static const <a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a>&#160;</td><td class="memItemRight" valign="bottom"><b>IDENTITY</b></td></tr>
<tr class="separator:a557d1ea19926b9b176df5863d9a3ecbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a43bebeafb09a7891d0e58ea74dacd4e8"><td class="memItemLeft" ><a class="anchor" id="a43bebeafb09a7891d0e58ea74dacd4e8"></a>
union {</td></tr>
<tr class="memitem:aa4d075904ce4f82479d28537486583b6"><td class="memItemLeft" >&#160;&#160;&#160;float&#160;&#160;&#160;<b>m</b> [4][4]</td></tr>
<tr class="separator:aa4d075904ce4f82479d28537486583b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adee145b06b5e6c85fbe84433141a2be1"><td class="memItemLeft" >&#160;&#160;&#160;float&#160;&#160;&#160;<b>_m</b> [16]</td></tr>
<tr class="separator:adee145b06b5e6c85fbe84433141a2be1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43bebeafb09a7891d0e58ea74dacd4e8"><td class="memItemLeft" valign="top">};&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
<tr class="memdesc:a43bebeafb09a7891d0e58ea74dacd4e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">The matrix entries, indexed by [row][col]. <br/></td></tr>
<tr class="separator:a43bebeafb09a7891d0e58ea74dacd4e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:a5edc6d99986d673f118000bbb3eb36f1"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t3_d_1_1_matrix4x4.html#a5edc6d99986d673f118000bbb3eb36f1">operator&lt;&lt;</a> (std::ostream &amp;o, const <a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a> &amp;mat)</td></tr>
<tr class="separator:a5edc6d99986d673f118000bbb3eb36f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a1678d7e46361e15ba41c38cad7065c11"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">T3D::Matrix4x4::Matrix4x4 </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Default constructor. </p>
<dl class="section note"><dt>Note</dt><dd>It does <b>NOT</b> initialize the matrix for efficiency. </dd></dl>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a36cd23a5f1eb366af2293519fbd292bd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a> T3D::Matrix4x4::concatenateAffine </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a> &amp;&#160;</td>
          <td class="paramname"><em>m2</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Concatenate two affine matrices. </p>
<dl class="section note"><dt>Note</dt><dd>The matrices must be affine matrix. </dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="class_t3_d_1_1_matrix4x4.html#a790e5354f42580d4c71e34c5e738af7a">Matrix4x4::isAffine</a>. </dd></dl>

</div>
</div>
<a class="anchor" id="a88e5622ebc6f7415acd4156d03b5ddac"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void T3D::Matrix4x4::extract3x3Matrix </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_t3_d_1_1_matrix3x3.html">Matrix3x3</a> &amp;&#160;</td>
          <td class="paramname"><em>m3x3</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<pre class="fragment">Extracts the rotation / scaling part of the Matrix as a 3x3 matrix. 
</pre> <dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">m3x3</td><td>Destination <a class="el" href="class_t3_d_1_1_matrix3x3.html">Matrix3x3</a> </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a9f4d4874aeeb949257ac5c5d010e9878"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a> T3D::Matrix4x4::getScale </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_t3_d_1_1_vector3.html">Vector3</a> &amp;&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Gets a scale matrix. </p>

</div>
</div>
<a class="anchor" id="a702e2fba4ea6d997a06924bde0300f65"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a> T3D::Matrix4x4::getScale </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>sx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>sy</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>sz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Gets a scale matrix - variation for not using a vector. </p>

</div>
</div>
<a class="anchor" id="a2aabedfd0409f3b6113a4299ee6bbe42"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_t3_d_1_1_vector3.html">Vector3</a> T3D::Matrix4x4::getTrans </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Extracts the translation transformation part of the matrix. </p>

</div>
</div>
<a class="anchor" id="a40963b5eb0d6228036c8a3971378e287"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a> T3D::Matrix4x4::getTrans </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_t3_d_1_1_vector3.html">Vector3</a> &amp;&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Gets a translation matrix. </p>

</div>
</div>
<a class="anchor" id="ab79ab2cbea297e23922bea347e5c88f5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a> T3D::Matrix4x4::getTrans </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>tx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>ty</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>tz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Gets a translation matrix - variation for not using a vector. </p>

</div>
</div>
<a class="anchor" id="a0526363bb81eeeca3bf34c0eac0e20f3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool T3D::Matrix4x4::hasNegativeScale </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Determines if this matrix involves a negative scaling. </p>

</div>
</div>
<a class="anchor" id="a2c6e88de0f64c132283319a0cd7a6a8a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a> T3D::Matrix4x4::inverseAffine </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns the inverse of the affine matrix. </p>
<dl class="section note"><dt>Note</dt><dd>The matrix must be an affine matrix. </dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="class_t3_d_1_1_matrix4x4.html#a790e5354f42580d4c71e34c5e738af7a">Matrix4x4::isAffine</a>. </dd></dl>

</div>
</div>
<a class="anchor" id="a790e5354f42580d4c71e34c5e738af7a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool T3D::Matrix4x4::isAffine </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<pre class="fragment">Building a Matrix4x4 from orientation / scale / position.
</pre> <dl class="section remark"><dt>Remarks</dt><dd><a class="el" href="class_t3_d_1_1_transform.html">Transform</a> is performed in the order scale, rotate, translation, i.e. translation is independent of orientation axes, scale does not affect size of translation, rotation and scaling are always centered on the origin. Building an inverse <a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a> from orientation / scale / position. </dd>
<dd>
As makeTransform except it build the inverse given the same data as makeTransform, so performing -translation, -rotate, 1/scale in that order.Decompose a <a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a> to orientation / scale / position.Check whether or not the matrix is affine matrix. </dd>
<dd>
An affine matrix is a 4x4 matrix with row 3 equal to (0, 0, 0, 1), e.g. no projective coefficients. </dd></dl>

</div>
</div>
<a class="anchor" id="ace7bf501a6282089b09b59508e8b624f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void T3D::Matrix4x4::makeTrans </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_t3_d_1_1_vector3.html">Vector3</a> &amp;&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Builds a translation matrix </p>

</div>
</div>
<a class="anchor" id="a36f3ebf7487386f72398a59d81ca40d4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool T3D::Matrix4x4::operator!= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a> &amp;&#160;</td>
          <td class="paramname"><em>m2</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Tests 2 matrices for inequality. </p>

</div>
</div>
<a class="anchor" id="aa7e5447a2d98f6fd7697e6c80b2eb5b1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a> T3D::Matrix4x4::operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a> &amp;&#160;</td>
          <td class="paramname"><em>m2</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Matrix concatenation using '*'. </p>

</div>
</div>
<a class="anchor" id="a7ba4bd89268ab0678b62f2b2e276c3ed"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_t3_d_1_1_vector3.html">Vector3</a> T3D::Matrix4x4::operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_t3_d_1_1_vector3.html">Vector3</a> &amp;&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Vector transformation using '*'. </p>
<dl class="section remark"><dt>Remarks</dt><dd>Transforms the given 3-D vector by the matrix, projecting the result back into <em>w</em> = 1. </dd></dl>
<dl class="section note"><dt>Note</dt><dd>This means that the initial <em>w</em> is considered to be 1.0, and then all the tree elements of the resulting 3-D vector are divided by the resulting <em>w</em>. </dd></dl>

</div>
</div>
<a class="anchor" id="a6181a14d5108206af66b24c075b29091"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a> T3D::Matrix4x4::operator+ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a> &amp;&#160;</td>
          <td class="paramname"><em>m2</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Matrix addition. </p>

</div>
</div>
<a class="anchor" id="ab316a653524a8b9b6995643f6484f18f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a> T3D::Matrix4x4::operator- </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a> &amp;&#160;</td>
          <td class="paramname"><em>m2</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Matrix subtraction. </p>

</div>
</div>
<a class="anchor" id="ae0e167d247e7537cfb9afc66c23a103f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void T3D::Matrix4x4::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_t3_d_1_1_matrix3x3.html">Matrix3x3</a> &amp;&#160;</td>
          <td class="paramname"><em>mat3</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Assignment from 3x3 matrix. </p>

</div>
</div>
<a class="anchor" id="a15606944065638b5d2fc801b700fa4e7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool T3D::Matrix4x4::operator== </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a> &amp;&#160;</td>
          <td class="paramname"><em>m2</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Tests 2 matrices for equality. </p>

</div>
</div>
<a class="anchor" id="a09417efd46dfd51207acc43dc19199e6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void T3D::Matrix4x4::setScale </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_t3_d_1_1_vector3.html">Vector3</a> &amp;&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Sets the scale part of the matrix. </p>

</div>
</div>
<a class="anchor" id="afd7c913d2721c0dc400b131f0a39e9a6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void T3D::Matrix4x4::setTrans </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_t3_d_1_1_vector3.html">Vector3</a> &amp;&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Sets the translation transformation part of the matrix. </p>

</div>
</div>
<a class="anchor" id="aed6a154def1111e3e8a2a9bd9a35d024"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void T3D::Matrix4x4::swap </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a> &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Exchange the contents of this matrix with another. </p>

</div>
</div>
<a class="anchor" id="a0eefdf23955fd626da91838c96d32b59"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_t3_d_1_1_vector3.html">Vector3</a> T3D::Matrix4x4::transformAffine </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_t3_d_1_1_vector3.html">Vector3</a> &amp;&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>3-D Vector transformation specially for an affine matrix. </p>
<dl class="section remark"><dt>Remarks</dt><dd>Transforms the given 3-D vector by the matrix, projecting the result back into <em>w</em> = 1. </dd></dl>
<dl class="section note"><dt>Note</dt><dd>The matrix must be an affine matrix. </dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="class_t3_d_1_1_matrix4x4.html#a790e5354f42580d4c71e34c5e738af7a">Matrix4x4::isAffine</a>. </dd></dl>

</div>
</div>
<a class="anchor" id="a3444acaca95c4c35d035e22cc13e48c6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_t3_d_1_1_vector4.html">Vector4</a> T3D::Matrix4x4::transformAffine </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_t3_d_1_1_vector4.html">Vector4</a> &amp;&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>4-D Vector transformation specially for an affine matrix. </p>
<dl class="section note"><dt>Note</dt><dd>The matrix must be an affine matrix. </dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="class_t3_d_1_1_matrix4x4.html#a790e5354f42580d4c71e34c5e738af7a">Matrix4x4::isAffine</a>. </dd></dl>

</div>
</div>
<h2 class="groupheader">Friends And Related Function Documentation</h2>
<a class="anchor" id="a5edc6d99986d673f118000bbb3eb36f1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::ostream&amp; operator&lt;&lt; </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>o</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Function for writing to a stream. </p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="ad4ace6433af4d25c44507d39fd11333f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="class_t3_d_1_1_matrix4x4.html">Matrix4x4</a> T3D::Matrix4x4::ZERO</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Extracts the rotation / scaling part as a quaternion from the Matrix. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>M:/T3Dwin/T3DShaderVersion/T3D/T3D/<a class="el" href="_matrix4x4_8h_source.html">Matrix4x4.h</a></li>
<li>M:/T3Dwin/T3DShaderVersion/T3D/T3D/Matrix4x4.cpp</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Feb 27 2014 10:39:52 for T3D by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</small></address>
</body>
</html>
